/*
 * RandomInsertionHeuristic.h
 *
 *  Created on: Dec 10, 2012
 *      Author: lfelipe
 */

#ifndef RANDOMINSERTIONHEURISTIC_H_
#define RANDOMINSERTIONHEURISTIC_H_

#include "InsertionHeuristic.h"

#include "../Entity/Instance.h"
#include "../Entity/Layer.h"

class RandomInsertionHeuristic
{
public:

    RandomInsertionHeuristic();
    virtual ~RandomInsertionHeuristic();
    Layer generate_random_layer(const Instance & instance);
    std::pair<int,int> get_random_place(std::set<std::pair <int,int> > &places);
    Cell* random_insertion(const Instance & instance, Layer & layer, std::set<std::pair <int,int> > &empty_places);
    Cell::CLOCK_ZONE get_random_clock(Layer &layer, Cell cell,const Instance & instance);
};

#endif /* RANDOMINSERTIONHEURISTIC_H_ */
